<template>
  <div class="imgList">
    <!-- 使用头部组件 -->
    <myheader titleName='图文资讯'></myheader>
    <div class="img-list">
      <div class="cate">
        <ul id="cateul">
          <!-- 点击全部时渲染全部数据 -->
          <li @click='changeCate(0)'><span>全部</span></li>
          <li v-for='item in cateList' :key='item.id' @click='changeCate(item.id)'><span>{{item.title}}</span></li>
        </ul>
      </div>
      <div class="img-list-box">
        <ul>
          <li v-for='item in imgList' :key='item.id'>
            <!-- 通过router-link to属性实现跳转到图片详情页 -->
            <router-link :to="`/img_detail/${item.id}`">
            <img :src="item.img_url" :alt="item.title"></router-link>
            <p>
              <span class="title">{{item.title}}</span>
            {{item.zhaiyao}}
            </p>
          </li>
        </ul>
      </div>
    </div>
  </div>
</template>

<script>
import { getImgCate, getImgList } from '@/api'
import myheader from '@/components/myheader'

export default {
  components: {
    myheader
  },
  data () {
    return {
      cateList: '', // 所有分类列表
      imgList: ''
    }
  },
  created () {
    this.initImgCate()
    // 调用全部分类，也就是id为0时的所有列表数据
    this.initImgList(0)
  },
  methods: {
    // 初始化分类列表
    initImgCate () {
      getImgCate().then(res => {
        console.log(res)
        this.cateList = res.message
        // 图片分类总的数量，因为全部标签是自己加上的，所以要+1
        let totalNum = this.cateList.length + 1
        // 拿到总的宽度  给每一项设定宽度为60
        let totalWidth = totalNum * 60 + 'px'
        // 把总的宽度给到ul标签
        document.getElementById('cateul').style.width = totalWidth
      })
    },
    // 初始化图片列表
    initImgList (id) {
      getImgList(id).then(res => {
        console.log(res)
        this.imgList = res.message
      })
    },
    // 切换分类   根据点击的那一项的id进行切换
    changeCate (id) {
      this.initImgList(id)
    }
  }
}
</script>
<style lang="scss" scoped>
  .img-list {
    // margin-bottom: 55px;
    // margin-top: 40px;
  }
  .cate {
    max-width: 100%;
    margin: 0;
    overflow-x:auto;
    overflow-y: hidden;
    font-size: 14px;
    ul {
      padding-left: 10px;
      margin: 5px 0;
      li {
        list-style: none;
        display: inline-block;
        padding: 0 0 0 5px;
        span {
          color:#0094ff;
        }
      }
    }
  }
  .img-list-box {
    ul {
      padding: 0;
      li {
        list-style: none;
        position: relative;
      }
    }
    p {
      font-size: 14px;
      color: #fff;
      position: absolute;
      bottom: 0px;
      left: 0px;
      background-color: rgba(0,0,0,0.4);
      .title {
        font-weight: bold;
      }
    }
    img {
      width: 100%;
    }
  }

  image[lazy=loading] {
    width: 100%;
    margin: auto;
  }
</style>
